package cn.zyb.basic.mapper;


import cn.zyb.basic.query.BaseQuery;

import java.util.List;

/**
 * @author zyb
 * @version 1.0.0
 * @date 2022年07月06日 11:00:04
 * @packageName cn.zyb.basic.Mapper
 * @className BaseMapper
 * @describe TODO
 */
public interface BaseMapper<T> {
  /**
   * 加载所有
   * @return
   */
  List<T> loadAll();

  /**
   * 加载单个对象
   * @param id
   * @return
   */
  T loadById(Long id);

  /**
   * 保存一个对象
   * @param t
   */
  void save(T t);

  /**
   * 移除一个对象
   * @param id
   */
  void  remove(Long id);

  /**
   * 更新一个对象
   * @param t
   */
  void update(T t);

  /**
   * 查询总数量
   * @param baseQuery
   * @return
   */
  Integer queryCount(BaseQuery baseQuery);

  /**
   *  查询当前页的数据
   * @param baseQuery
   * @return
   */
  List<T> queryData(BaseQuery baseQuery);

  /**
   * 批量删除
   * @param ids
   */
  void patchDel(List<Long> ids);
}
